﻿#include<iostream>
using namespace std;


//默认构造函数
//typedef int stdatetype;
//class stack
//{
//public:
//	stack(int n = 4)
//	{
//		_a = (stdatetype*)malloc(sizeof(stdatetype) * n);
//		if (_a==nullptr)
//		{
//			perror("malloc");
//			return;
//		}
//		_capacity = n;
//		_top = 0;
//	}
//
//private:
//	stdatetype* _a;
//	size_t _capacity;
//	size_t _top;
//};
//
//class myqueue
//{
//public:
//	//编译器默认生成MyQueue的构造函数调用了Stack的默认构造，完成了两个成员的初始化
//private:
//	stack pushst;
//	stack popst;
//};
//
//int main()
//{
//	myqueue q1;
//
//	return 0;
//}


//
////无默认构造函数
//typedef int stdatetype;
//class stack
//{
//public:
//	stack(int n)
//	{
//		_a = (stdatetype*)malloc(sizeof(stdatetype) * n);
//		if (_a==nullptr)
//		{
//			perror("malloc");
//			return;
//		}
//		_capacity = n;
//		_top = 0;
//	}
//
//private:
//	stdatetype* _a;
//	size_t _capacity;
//	size_t _top;
//
//	int& _z;
//	int _x;
//	const int _y;
//
//};
//
//class myqueue
//{
//public:
//	//无默认构造
//	myqueue(int& r,int n=10)
//		:pushst(10)
//		,popst(10)
//		,_y(1)
//		,_z(r)
//	{
//		_x = 1;
//	}
//
//private:
//	stack pushst;
//	stack popst;
//
//
//	int& _z;
//	int _x;
//	const int _y;
//
//};
//
//int main()
//{
//	int i = 0;
//	myqueue q1(i);
//	myqueue q2(i,100);
//
//	return 0;
//}


//class Time
//{
//public:
//	Time(int hour=0)//3.默认构造函数值
//		:_hour(hour)
//	{
//		cout << "Time()" << endl;
//	}
//private:
//	int _hour;
//};
//
//class Date
//{
//public:
//	Date(int& x, int year = 1, int month = 1, int day = 1)
//		:_year(year)
//		, _month(month)
//		, _day(day)
//		,_t(12)//1.初始化列表的值
//	{
//		
//	}
//	void Print() const
//	{
//		cout << _year << "-" << _month << "-" << _day << endl;
//	}
//
//private:
//	int _year;
//	int _month;
//	int _day;
//
//	Time _t = 10;//2.类声明位置的缺省值
//
//};
//
//int main()
//{
//	int i = 0;
//	Date d1(i);
//	d1.Print();
//	return 0;
//}


//#include<iostream>
//using namespace std;
//class A
//{
//public:
//	A(int a)
//		:_a1(a)
//		, _a2(_a1)
//	{}
//	void Print() {
//		cout << _a1 << " " << _a2 << endl;
//	}
//private:
//	int _a2 = 2;
//	int _a1 = 2;
//};
//int main()
//{
//	A aa(1);
//	aa.Print();
//}





//#include<iostream>
//using namespace std;
//class A
//{
//public:
//	A()
//	{
//		++_scount;
//	}
//	A(const A& t)
//	{
//		++_scount;
//	}
//	~A()
//	{
//		--_scount;
//	}
//	static int GetACount()
//	{
//		return _scount;
//	}
//private:
//	// 类⾥⾯声明
//	static int _scount;
//};
//// 类外⾯初始化
//int A::_scount = 0;
//int main()
//{
//	cout << A::GetACount() << endl;
//	A a1;
//	A a3(a1);
//	cout << A::GetACount() << endl;
//	cout << a1.GetACount() << endl;
//
//	return 0;
//}



